
package cn.org.chiss.rhin._2015.base.document;

import cn.org.chiss.rhin._2015.base.String;
import cn.org.chiss.rhin._2015.base.*;
import cn.org.chiss.rhin._2015.base.object.RegObject;
import lombok.Data;
import lombok.EqualsAndHashCode;

import javax.xml.bind.annotation.*;
import java.util.List;


/**
 * 提交集元数据消息体
 * 
 * <p>SubmissionSet complex type的 Java 类。
 * 
 * <p>以下模式片段指定包含在此类中的预期内容。
 * 
 * <pre>
 * &lt;complexType name="SubmissionSet"&gt;
 *   &lt;complexContent&gt;
 *     &lt;extension base="{http://www.chiss.org.cn/rhin/2015}RegObject"&gt;
 *       &lt;sequence&gt;
 *         &lt;element name="uniqueId" type="{http://www.chiss.org.cn/rhin/2015}OID"/&gt;
 *         &lt;element name="submissionTime" type="{http://www.chiss.org.cn/rhin/2015}DateTime"/&gt;
 *         &lt;element name="title" type="{http://www.chiss.org.cn/rhin/2015}String" minOccurs="0"/&gt;
 *         &lt;element name="patientId" type="{http://www.chiss.org.cn/rhin/2015}Identifier"/&gt;
 *         &lt;element name="author" type="{http://www.chiss.org.cn/rhin/2015}Author" maxOccurs="unbounded" minOccurs="0"/&gt;
 *         &lt;element name="intendedRecipient" type="{http://www.chiss.org.cn/rhin/2015}Reference" maxOccurs="unbounded" minOccurs="0"/&gt;
 *         &lt;element name="contentTypeCode" type="{http://www.chiss.org.cn/rhin/2015}CodeableConcept" minOccurs="0"/&gt;
 *         &lt;element name="sourceId" type="{http://www.chiss.org.cn/rhin/2015}OID" minOccurs="0"/&gt;
 *         &lt;element name="homeCommunityId" type="{http://www.chiss.org.cn/rhin/2015}URI" minOccurs="0"/&gt;
 *         &lt;element name="comments" type="{http://www.chiss.org.cn/rhin/2015}String" minOccurs="0"/&gt;
 *         &lt;choice maxOccurs="unbounded" minOccurs="0"&gt;
 *           &lt;element name="folder" type="{http://www.chiss.org.cn/rhin/2015}Folder" minOccurs="0"/&gt;
 *           &lt;element name="documentEntry" type="{http://www.chiss.org.cn/rhin/2015}DocumentEntry" minOccurs="0"/&gt;
 *           &lt;element name="association" type="{http://www.chiss.org.cn/rhin/2015}Association" minOccurs="0"/&gt;
 *         &lt;/choice&gt;
 *       &lt;/sequence&gt;
 *     &lt;/extension&gt;
 *   &lt;/complexContent&gt;
 * &lt;/complexType&gt;
 * </pre>
 * 
 * 
 */
@Data
@EqualsAndHashCode(callSuper=false)
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "SubmissionSet", propOrder = {
    "uniqueId",
    "submissionTime",
    "title",
    "patientId",
    "author",
    "intendedRecipient",
    "contentTypeCode",
    "sourceId",
    "homeCommunityId",
    "comments",
    "folderOrDocumentEntryOrAssociation"
})
public class SubmissionSet extends RegObject
{

    /**
     * 提交集唯一标识符OID
     * c必填
     * m必填
     */
    @XmlElement(required = true)
    protected OID uniqueId;
    /**
     * 提交时间
     * c必填
     * m必填
     */
    @XmlElement(required = true)
    protected DateTime submissionTime;
    /**
     * 标题
     * c非必填
     * m非必填
     */
    protected String title;
    /**
     * 患者唯一标识
     * c必填
     * m必填
     */
    @XmlElement(required = true)
    protected Identifier patientId;
    /**
     * 作者
     * c非必填
     * m非必填
     */
    protected List<Author> author;
    /**
     * 接收者 限制要在可选范围内
     * c非必填
     * m非必填
     */
    protected List<Reference> intendedRecipient;
    /**
     * 内容类型代码 一般与文档的classCode一致
     * c必填
     * m必填
     */
    protected CodeableConcept contentTypeCode;
    /**
     * 文档源标识符OID
     * c必填
     * m必填 用于确认提交集由那个系统提交
     */
    protected OID sourceId;
    /**
     * 区域唯一标识符OID
     */
    protected URI homeCommunityId;
    /**
     * 注释String
     * c非必填
     * m非必填
     */
    protected String comments;
    @XmlElements({
        @XmlElement(name = "folder", type = Folder.class),
        @XmlElement(name = "documentEntry", type = DocumentEntry.class),
        @XmlElement(name = "association", type = Association.class)
    })
    protected List<RegObject> folderOrDocumentEntryOrAssociation;


}
